Материалы курса «Подготовка к Аттестации по Платформе 8.2» – Раздел 1, задача 1.46 «Abibas»

Еще одна задача раздела “Оперативный учет” – задача 1.46 “Abibas”

Комментарий от Павла:
В задаче используются характеристики, задача крайне сильно похожа на задачу №1.46 из сборника, в тексте задачи я позволил себе более конкретно в отчете показать, что же нужно вывести, и что такое свойства и характеристики товаров.

Советую посмотреть на реализацию механизмов свойств и характеристик в типовых, это поможет при решении подобных задач.

  • Изучите материалы задачи.
  • Вопросы, возникшие в ходе изучения этих материалов, задавайте в комментариях на текущей странице. Ответы преподавателя и комментарии других участников будут Вам доступны, только если Вы залогинены и у Вас есть доступ в Мастер-группу.
  • Общие вопросы по курсу (в т.ч. организационные) задавайте на стартовой странице.

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии / обсуждение (29):

  1. IntelMan

    Здравствуйте, Павел,

    Урок, отличный спасибо!

    В задаче сказано, что списание себестоимости реализовывать в разрезе партий (для этого создается РН). С этим все понятно. А как быть с проверкой остатков номенклатуры, создать еще один РН? Т.е. как понимается, сначала проверяем остатки, а только потом списываем себестоимость.

    И еще вопрос, в каком случае использовать БликироватьДляИзменения = Истина, а в каком объект БлокировкаДанных (например, для этой задачи)?

      • IntelMan

        Получается, что необходимо использовать и БликироватьДляИзменения = Истина для РН Контроля остатков, и БлокировкаДанных для РН себестоимости, т.к. по каким партиям будем списывать мы не знаем. Это так?

        • GROOVY

          Да.
          Если пишем-читаем – блокировать для изменения.
          Если читаем-пишем – блокировка данных.

  2. mvmaster

    Подскажите в каких случаях в ПВХ необходимо заполнять свойство “Дополнительные значения характеристик”?
    Получил ответ в стартовом пакете: “Это будет значение по умолчанию при создании нового элемента ПВХ”.

  3. Алексей Васильев


    (текст комментария доступен только участникам Мастер-группы)

    • GROOVY

      Существует 2 методики решения таких задач. Вводить 2 регистра (ОстаткиПартий и Остатки) или партию при переходе на метод “ПоСреднему” обнулять. Естественно при списании “ПоСреднему” никаких партий в регистре (остатков партий) быть не должно.

      • Алексей Васильев


        (текст комментария доступен только участникам Мастер-группы)

        • GROOVY

          Нет. Нельзя.
          Разреза себестоимости по партиям быть не должно при использовании метода списания “по среднему”.

          • Алексей Васильев


            (текст комментария доступен только участникам Мастер-группы)

  4. Илья

    Добрый день!

    По условию задачи “Необходимо построить отчет о движениях товаров за период по выбранной характеристике в
    количественном и суммовом выражении”. Дальше есть пример отчета с выборкой по производителю. Что мы и реализовали в учебном примере.

    Но само задание читается таким образом, что пользователь должен перед построением отчета выбрать, по какой характеристике должен быть построен отчет, по производителю или по цвету и т.п. Если решать такую задачу, то в этом случае характеристики, заданные для справочника или в запросе СКД, нам не помогут. В запросе нужно будет отобрать выбранную характеристику непосредственно из регистра значений характеристик и присоединить к ней значения и обороты. Это верный подход к такой формулировке задачи?

    • GROOVY

      Достаточно описать связь характеристик в СКД, сам отбор установит пользователь.

  5. Suyundukov

    Порекомендуйте, пожалуйста, как правильно организовать партионный учет в разрезе свойств и партий?
    Я решил задачу таким образом.

    Запрос.Текст =
    “ВЫБРАТЬ
    | ДокТЧ.Номенклатура,
    | ДокТЧ.Характеристика,
    | ДокТЧ.Количество,
    | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КолОст,
    | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОст,
    | ОстаткиНоменклатурыОстатки.Партия,
    | ОстаткиНоменклатурыОстатки.Партия.МоментВремени КАК Сортировка
    |ИЗ
    | ДокТЧ КАК ДокТЧ
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | &МоментВремени,
    | (Номенклатура, Характеристика) В
    | (ВЫБРАТЬ
    | доктч.Номенклатура,
    | доктч.Характеристика
    | ИЗ
    | доктч КАК доктч)) КАК ОстаткиНоменклатурыОстатки
    | ПО ДокТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
    | И ДокТЧ.Характеристика = ОстаткиНоменклатурыОстатки.Характеристика”;

    Запрос.УстановитьПараметр(“МоментВремени”, МоментВремени());

    Если Режим = РежимПроведенияДокумента.Оперативный Тогда

    Движения.ОстаткиНоменклатуры.Записать();

    КонецЕсли;

    Результат = Запрос.Выполнить();

    ТаблОстатки = Результат.Выгрузить();

    Порядок = “Возр”;
    Если УП = Перечисления.УчетнаяПолитика.ЛИФО Тогда
    Порядок = “Убыв”;
    КонецЕсли;

    Пока ВыборкаПоТЧ.Следующий() Цикл
    Поиск = Новый Структура;
    Поиск.Вставить(“Номенклатура”, ВыборкаПоТЧ.Номенклатура);
    Поиск.Вставить(“Характеристика”, ВыборкаПоТЧ.Характеристика);

    МассивСтрок = ТаблОстатки.НайтиСтроки(Поиск);
    ТаблНом = ТаблОстатки.Скопировать(МассивСтрок);
    ТаблНом.Сортировать(“Сортировка ” + Порядок, Новый СравнениеЗначений);

    СписатьВсего = ТаблНом[0].Количество;
    ОсталосьВсего = ТаблНом.Итог(“КолОст”);

    Если СписатьВсего > ОсталосьВсего Тогда

    Отказ = Истина;

    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = “Не хватает номенклатуры”;
    Сообщение.Сообщить();

    Продолжить;

    КонецЕсли;

    Для каждого Строка Из ТаблНом Цикл

    Если Строка.КолОст = 0 Тогда
    Продолжить;
    КонецЕсли;

    КСписанию = Мин(СписатьВсего, Строка.КолОст);

    Если КСписанию = 0 Тогда

    Прервать;

    КонецЕсли;

    Если КСписанию = Строка.КолОст Тогда

    Сумма = Строка.СуммаОст;

    Иначе

    Сумма = КСписанию / Строка.КолОст * Строка.СуммаОст;

    КонецЕсли;

    Движение = Движения.ОстаткиНоменклатуры.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Номенклатура = Строка.Номенклатура;
    Движение.Характеристика = Строка.Характеристика;
    Движение.Партия = Строка.Партия;
    Движение.Количество = КСписанию;
    Движение.Сумма = Сумма;

    СписатьВсего = СписатьВсего – КСписанию;

    КонецЦикла;

    КонецЦикла;

    Т.е. с помощью выгрузки результата запроса в таблицу значений и дальнейшим поиском нужных строк по номенклатуре и свойству.
    Это правильно? или как то можно построить запрос с итогами, чтобы можно было обходить выборку иерархически?

    • GROOVY

      Вроде все правильно. Характеристика – доп измерение в регистре остатков.

  6. Elya

    Добрый день Павел. В задаче 1.48 есть такое условие “если из продуктов изготовлено блюдо, например из овощей сделан салат, то продаваться может только само блюдо, а входящие в его состав продукты проданы быть не могут”. Как контролировать эти продукты в табличной части?

    • GROOVY

      Варианта 2.
      1. Свойство в справочнике.
      2. Запрос к регистру сведений где “рецепты” хранятся и проверка есть ли там этот ингредиент или нет.

      Второй вариант более правильный.

  7. Elya

    Павел как списание себестоимости должно происходить в разрезе СВОЙСТВ по партиям? Должны быть собраны итоги по Вариантам Номенклатуры, а не по самой Номенклатуре?

    • GROOVY

      Каждые “ботинки, 42 размера, черные” – это отдельный объект учета. Партионный учет ведется в разрезе именно этого объекта.

      • Elya

        До конца неясно, когда мы используем старую методику проведения документа, а когда новую?

        • GROOVY

          Это в контексте прошлого вопроса?

          Я отвечу не в контексте. Там где есть себестоимость (деньги) методику оперативного проведения использовать не получится.

  8. kirillova_nn

    Павел, добрый день. Мой вопрос не относится к описанной в данной рубрике задаче, а имеет отношение к другим задачам по оперативному учету. Решила, что здесь будет актуально. В сборнике (правда 2010 года) под номерами 1.28  и 1.29.
    По задаче 1.28.
    Если кратко, то требуется использовать для списания стоимости партионный учет, а потом при поступлении доп. затрат (в документе указываем партию, на которую вешаем затраты) вносить корректировки стоимости товаров, как еще не проданных, так и уже проданных товаров.
    Что делаю:
    РН “Остатки товаров”:
    Приход: Приходная накладная – количество и стоимость товара;
    Раход: Расходная накладная – количество и стоимость, списанная по партии;
    Приход: Доп затраты – сумма затрат, распределенная по товарам конкретной партии, период – дата документа;
    Расход: Доп затраты – сумма распределенных затрат, по которым уже были отгрузки, период – дата документа.
    РН “Продажи” – оборотный:
    Раходная накладная – формируем выручку, себестоимость;
    Доп затраты – увеличиваем себестоимость по проданным товарам, период – дата документа .
    В отчетах (как в 1.28. так и в 1.29), себестоимость требуется указывать с учетом доп затрат вне зависимости от периода их возникновения.
    Т.к. во всех, формируемых мной движениях период = дате документа, то при создании отчета на СКД требуемого условия никак не добиться :(, т.е. в консоли могу получить, а в СКД  не перевести.
    Вопрос:
    Я не правильно спроектировала структуру регистров, может период для Доп затрат нужно указывать по дате Расходной накладной?
    Или есть какой-нибудь волшебный метод, позволяющий в СКД для одной виртуальной таблицы использовать стандартное ограничение периода, а для второй нет?
    И по 1.29. 
    В задаче есть такой абзац “Документ Доп. затраты может сниматься с проведения или редактироваться задним числом. В этом случае, если товар уже был продан, то его себестоимость должна быть скорректирована без перепроведения самих документов продаж”, т.е. требуется что-то вроде восстановления последовательности или рисовать движения Доп затрат после движений документов продажи?
    Заранее спасибо.
     

    • GROOVY

      Приветствую!

      В регистр с остатками товаров приход формирует 2 документа: Поступление товаров и Поступление доп затрат, а расход один: Продажа товаров.
      Коллизии о которых Вы говорите решаются с помощью последовательностей.
      А отчеты строятся на основе регистра с Продажами, а туда попадет правильная себестоимость при условии целостности последовательности.

      • kirillova_nn

        Спасибо за ответ.
        Получается, что при использовании последовательности, обе задачи решаются одинаково, не смотря на оговаривающиеся условия наличия/отсутствия возможности редактирования доп. затрат задним числом?

          • Elya

            Всегда ли нужно использовать последовательности?

            • GROOVY

              Странный вопрос. Всегда ли: нет. Зависит от задачи. Часто даже в задачах где предусматривается последовательности до них дело не доходит, так как сама задача решена неверно.

          • Elya

            Павел,извините за может быть глупый вопрос, я не поняла, какой алгоритм действий, если “Документ Доп. затраты может сниматься с проведения или редактироваться задним числом. В этом случае, если товар уже был продан, то его себестоимость должна быть скорректирована без перепроведения самих документов продаж”.

            • GROOVY

              Я, если честно, не глубоко вникал в реение обсуждаемой Вами задачи, но возможно сделать либо обработку, корректирующую движения по регистрам, либо регламентный документ, который в конце месяца будет корректирующие движения делать.

Комментарии закрыты